import hashlib,base64,random,string

class UserService():
    #产生一个加密的授权码
    @staticmethod
    def geneAuthCode(user_info):
        m = hashlib.md5()
        str = "%s-%s-%s-%s"%(user_info.uid,user_info.login_name,user_info.login_pwd,user_info.login_salt)
        m.update(str.encode("utf-8"))  # str进行加密转换成字节码
        return m.hexdigest()  # 返回16进制的编码

    @staticmethod
    def genePwd(pwd,salt): #根据用户输入的密码产生一个随机的字符串 {MD5 和base64}
        #初始化hanshlib_MD5
        m = hashlib.md5()
        str = "%s-%s"%(base64.encodebytes(pwd.encode("utf-8")),salt) #pwd 和 salt两个参数转换成一个参数  base64对密码进行加密  encode把字符串转换成字节码
        m.update(str.encode("utf-8"))  #str进行加密转换成字节码
        return m.hexdigest()  #返回16进制的编码

##封装一个产生salt的方法
    @staticmethod
    def geneSalt( length = 16 ):
        keylist = [ random.choice( ( string.ascii_letters + string.digits ) ) for i in range( length ) ]
        return ( "".join( keylist ) )
